AWS Direct Connect のフェイルオーバーテストをやってみた
こんにちは、久住です。
先日のアップデートで実施できるようになった AWS Direct Connect のフェイルオーバーテストをやってみました! アップデートの詳細については下記エントリーをご確認ください。
テスト環境
冗長化されたDirectConnectの環境がないため、今回は1物理ポートのDirectConnectから2つの仮想インターフェイスをVPCに接続することでフェイルオーバーテストをしてみました。BGPルータ(CGW)にはCisco ASR1000シリーズを利用しています。
DirectConnectの仮想インターフェイスは下記の通り、メイン回線(VLAN1000)
/バックアップ回線(VLAN1001)
として作成しました。
フェイルオーバーはCLIやAPI経由でも実施出来るようですが、今回はマネジメントコンソールから実行してみます。
フェイルオーバーテスト機能は、AWS マネジメントコンソール、コマンドラインインターフェイス、または AWS Direct Connect API を使用して、お客様がボーダーゲートウェイプロトコルのセッションを 1 つ以上無効にすることで、回復性をテストできるようにします。
やってみた
メイン回線のBGP停止
メイン回線のVLAN1000(BGP-Failovertest-VLAN-1000-main)を停止します。 アクションから[BGPを停止させる]を選択します。
障害テストの開始画面にて、必要項目を入力してテストを開始します。 今回は[テストの最大時間]を3分に設定しました。
確認ボタンを押してテストを開始するとtesting
→down
の順に遷移していくようです。
「testing」の状態
「down」の状態
メイン回線のBGP自動回復
BGP停止時に設定した[テストの最大時間]の3分が経過するとBGPセッションが回復し、avalilable
に戻ります。
テスト履歴の確認
テストを実行した仮想インターフェイスの画面からテスト履歴を確認してみます。
履歴画面では[テスト開始時刻][テスト終了時刻]、[テストステータス]が確認できます。先程テストを実行した履歴のステータスはcomplete
になっていることが確認できました。
BGPルータからBGPセッション状態を確認してみる
今回検証した環境ではBGPルータ(CGW)に接続できるので、BGPルータで実際のBGPセッション状態の遷移を確認してみます。
BGPルータインターフェース情報
interface GigabitEthernet0/0/4.1000 description BGP_FO_test encapsulation dot1Q 1000 ip address 100.64.128.1 255.255.255.252 interface GigabitEthernet0/0/4.1001 description BGP_FO_test encapsulation dot1Q 1001 ip address 100.64.128.5 255.255.255.25
通常時
BGPルータ上でBGPルーティング情報を確認すると10.0.0.0/16(VPC)へのルーティング情報が2つ(メイン回線、バックアップ回線)存在します。
Network Next Hop Metric LocPrf Weight Path *> 10.0.0.0/16 100.64.128.2 0 64512 i * 100.64.128.6 0 64512 i *> 100.64.128.0/30 0.0.0.0 0 32768 i *> 100.64.128.4/30 0.0.0.0 0 32768 i
BGPセッション停止時
テスト履歴の[テスト開始時刻]の直後にメイン回線(VLAN1000)のBGP neighborとのセッションが切れていることが確認できます。
*Jun 5 10:12:55 JST: %BGP-5-ADJCHANGE: neighbor 100.64.128.2 Down BGP Notification received
Next Hop:100.64.128.2のルーティング情報がなくなっていることがわかります。
Network Next Hop Metric LocPrf Weight Path *> 10.0.0.0/16 100.64.128.6 0 64512 i *> 100.64.128.0/30 0.0.0.0 0 32768 i *> 100.64.128.4/30 0.0.0.0 0 32768 i
BGPセッション回復時
テスト履歴の[テスト終了時刻]の直後にメイン回線(VLAN1000)のBGP neighborとのセッションが回復していることが確認できます。
*Jun 5 10:16:03 JST: %BGP-5-ADJCHANGE: neighbor 100.64.128.2 Up
ルーティング情報も回復しています。
Network Next Hop Metric LocPrf Weight Path *> 10.0.0.0/16 100.64.128.2 0 64512 i * 100.64.128.6 0 64512 i *> 100.64.128.0/30 0.0.0.0 0 32768 i *> 100.64.128.4/30 0.0.0.0 0 32768 i
さいごに
今まではBPGセッションの無効化はAWS側ではできなかったため、回線のフェイルオーバーテストをする際にはBGPルータ(CGW)側でBGPセッションの無効化をする必要がありました。これによりAWS側の障害起因での切り替え試験はできなかったのですが、今回のアップデートでAWS側の擬似的な故障を再現してフェイルオーバテストが行える様になったので冗長化されたDirectConnect構成でサービスを実現するユーザには大きなアップデートではないでしょうか。
※ 冗長構成を取る場合はAS-PATH属性やLOCAL_PREF属性等を利用してルート選択を実装すると思いますが、今回は簡易的な疑似環境を作成しています。